package org.smile.orm.base;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.smile.collection.CollectionUtils.GroupKey;

public interface LogicDeleteSupportDAO extends BaseDAO{
	/**
	 * 按对象禁用数据
	 * @param obj
	 * @
	 */
	public void logicDelete(Object obj) ;
	/**
	 * 启用数据按对象
	 * @param obj
	 * @
	 */
	public void recovery(Object obj) ;
	/**
	 * 启用全部
	 * @param clazz
	 * @
	 */
	public void recoveryAll(Class clazz) ;
	/**
	 * 全不启用
	 * @param clazz
	 * @
	 */
	public void logicDeleteAll(Class clazz) ;
	/**
	 * 按where条件不启用
	 * @param clazz
	 * @param where
	 * @param params
	 * @
	 */
	public void logicDelete(Class clazz , String where, Object ... params) ;
	/**
	 * 按where条件启用
	 * @param clazz
	 * @param where
	 * @param params
	 * @
	 */
	public void recovery(Class clazz , String where, Object ... params) ;
	/**
	 * 按id 不启用
	 * @param clazz
	 * @param ids
	 * @
	 */
	public void logicDeleteByIds(Class clazz, Collection ids) ;
	/**
	 * 按id启用
	 * @param clazz
	 * @param ids
	 * @
	 */
	public void recoveryByIds(Class clazz, Collection ids) ;
	/**
	 * 批量禁用
	 * @param list
	 * @
	 */
	public void logicDeleteBatch(List list) ;
	/**
	 * 批量启用
	 * @param list
	 * @
	 */
	public void recoveryBatch(List list) ;

}
